/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prjtgl.controler.membre;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.zkoss.bind.BindUtils;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.*;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.*;
import prjtgl.metier.Application;
import prjtgl.metier.comptes.Membre;
import prjtgl.metier.comptes.Utilisateur;
import prjtgl.util.SessionUtilisateur;
/**
 *
 * @author Adrien
 */
public class ModifierCompte  extends SelectorComposer {
    
    
    @Wire
    Textbox name,prenom,email,mdp_1,mdp_2;
    
    @Wire
    Button retrieve;
    
    private Membre membre;
    
    
    public void doFinally()
    {
         String emailMembre = SessionUtilisateur.getUtilisateur().getEmail();
        membre = Application.getInstance().rechercherMembre(emailMembre);
       
         name.setValue(membre.getNom());
        
        prenom.setValue(membre.getPrenom());
        email.setValue(membre.getEmail());
    }
  
    
    @Listen("onClick=#retrieve")
    public void updateMembre()
    {
         
        Application ap = Application.getInstance();
        Utilisateur utilisateur = ap.rechercherUtilisateur(email.getValue());
        if ( utilisateur != null && utilisateur.getId() != membre.getId()) { showNotify("Adresse e-mail déjà utilisée !", retrieve);} 
        else if (!mdp_1.getValue().equals(mdp_2.getValue())) { showNotify("Mots de Passe et Confirmation de mot de passe sont différents !", mdp_1);} 
        else 
        {
            showNotify("Update réussie", retrieve);
          
          
            // SUCCESS
            membre.setNom(name.getValue());
            membre.setPrenom(prenom.getValue());
            membre.setEmail(email.getValue());
            membre.setMotDePasse(mdp_1.getValue());
          
            ap.updateMembre(membre);
            SessionUtilisateur.setUtilisateur(membre);
           
           Map<String, Object> args = new HashMap();

           args.put("content", "connexion.zul");
           BindUtils.postGlobalCommand(null, null, "changePage", args);
         
            
        }
              
    }
    
    private void showNotify(String msg, Component ref)
    {
        Clients.showNotification(msg, "info", ref, "end_center", 4000);
    }
}
